In many types of networked, distributed, or cloud-based computing environments, anti-collocation constraints dictate how or where resources may be provisioned, installed, or otherwise located. An anti-collocating constraint that, for example, bars two high-end print servers from being installed on a same LAN backbone segment, would have to be considered before deciding where to install a new print server. Anti-collocation rules can provide many other types of constraints, such as specifying, in a cloud-computing environment, that two specific types of virtual machines cannot be provisioned on a same physical platform.
In larger implementations that comprise large numbers of resources distributed across many platforms, subnetworks, physical resources, or virtualized computing environments, it can be difficult to efficiently accommodate the numerous anti-collocation rules that may arise.
These issues are especially relevant in a cloud-computing environment, where applications and virtualized computers, peripherals, and other virtual infrastructure may be provisioned and reprovisioned frequently. Anti-collocation rules may, for example, be used to improve a cloud's resiliency to failure of a physical resource on which one or more mission-critical virtual entities are provisioned. In one example, if two or more redundant virtual entities of a fault-resilient group are located on a same physical entity, the resulting single point of failure of could eliminate the fault-recovery benefits of such a resilient group.
These challenges become more complex when it is necessary to prioritize the order in which components or resources of a workload are added to a system pool. Such placement priorities may arise reasons that include a component's or resource's: relative business impact revenue-generation potential; or importance to a customer. In such cases, prioritization constraints may require a higher-priority workload to be placed, implemented, installed or provisioned such that the workload is able to access resources before they are consumed by lower-priority workloads.
Although these issues are relevant to provisioning virtual machines on physical hosts, they exist when provisioning any virtualized resource on any physical resource for which anti-collocation is required. Furthermore, analogous considerations must be taken into account when locating any sort of physical or virtual resource that is subject to anti-collocation constraints.